<?php

namespace Agp\CoreBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Agp\CoreBundle\Entity\Estado;

/**
 * Agp\CoreBundle\Entity\Validacao
 *
 * @ORM\Table(name="validacao")
 * @ORM\Entity(repositoryClass="Agp\CoreBundle\Repository\ValidacaoRepository")
 */
class Validacao
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="cod_validacao", type="integer")
     * @ORM\Id
     */
    protected $codValidadao;

    /**
     * @var objeto $venda
     * 
     * @ORM\ManyToOne(targetEntity="Agp\CoreBundle\Entity\Venda")
     * @ORM\JoinColumn(name="cod_venda", referencedColumnName="cod_venda", nullable=true) 
     */
    protected $venda;
    
    /**
     * @var objeto $itemVenda
     * 
     * @ORM\ManyToOne(targetEntity="Agp\CoreBundle\Entity\ItemVenda")
     * @ORM\JoinColumn(name="cod_item_venda", referencedColumnName="cod_item_venda", nullable=true) 
     */
    protected $itemVenda;
    
    /**
     * @var objeto $validador
     * 
     * @ORM\ManyToOne(targetEntity="Agp\CoreBundle\Entity\Validador")
     * @ORM\JoinColumn(name="cod_validador", referencedColumnName="cod_validador", nullable=true) 
     */
    protected $validador;
    
    /**
     * @var objeto $nmTicket
     * 
     * @ORM\Column(name="num_ticket", type="integer",  nullable=false) 
     * @ORM\Id
     */
    protected $nmTicket;
    
    /**
     *
     * @ORM\Column(name="dt_validacao", type="datetime", nullable=false)
     * @ORM\Id
     */
    protected $dtValidacao;
    
    const TP_UNICO = 'UNICO';
    const TP_ENTRADA = 'ENTRADA';
    const TP_SAIDA = 'SAIDA';
    const TP_DUPLICADO = 'DUPLICADO';
    /**
     *
     * @ORM\Column(name="tipo_validacao", type="string", nullable=false)
     */
    protected $tipoValidacao;
    
    /**
     * @var objeto $autorizadorValidacao
     * 
     * @ORM\ManyToOne(targetEntity="Agp\CoreBundle\Entity\AutorizadorValidacao")
     * @ORM\JoinColumn(name="cod_autorizador_validacao", referencedColumnName="cod_autorizador_validacao", nullable=true) 
     */
    protected $autorizadorValidacao;

    public function getCodValidadao() {
        return $this->codValidadao;
    }

    public function getValidador() {
        return $this->validador;
    }

    public function setCodValidadao($codValidadao) {
        $this->codValidadao = $codValidadao;
    }

    public function setValidador($validador) {
        $this->validador = $validador;
    }

    public function getVenda() {
        return $this->venda;
    }

    public function setVenda($venda) {
        $this->venda = $venda;
    }

    public function getItemVenda() {
        return $this->itemVenda;
    }

    public function setItemVenda($itemVenda) {
        $this->itemVenda = $itemVenda;
    }

    public function getNmTicket() {
        return $this->nmTicket;
    }

    public function setNmTicket($nmTicket) {
        $this->nmTicket = $nmTicket;
    }

    public function getDtValidacao() {
        return $this->dtValidacao;
    }

    public function setDtValidacao($dtValidacao) {
        $this->dtValidacao = $dtValidacao;
    }

    public function getTipoValidacao() {
        return $this->tipoValidacao;
    }

    public function setTipoValidacao($tipoValidacao) {
        $this->tipoValidacao = $tipoValidacao;
    }
    
    public static function getTipoArray(){
        
        return array(self::TP_ENTRADA => self::TP_ENTRADA,
                     self::TP_SAIDA => self::TP_SAIDA,
                     self::TP_UNICO => self::TP_UNICO,
                     self::TP_DUPLICADO => self::TP_DUPLICADO);
    }
    
    public function getAutorizadorValidacao() {
        return $this->autorizadorValidacao;
    }

    public function setAutorizadorValidacao($autorizadorValidacao) {
        $this->autorizadorValidacao = $autorizadorValidacao;
    }
}